package com.zhonghui.scm.domain;

import java.math.BigDecimal;
import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zhonghui.common.annotation.Excel;
import com.zhonghui.common.core.domain.BaseEntity;

/**
 * 供应链SCM-销售管理-销售退货对象 scm_sale_return
 * 
 * @author zhonghui
 * @date 2022-05-20
 */
@ApiModel("销售管理-销售退货对象")
public class ScmSaleReturn extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    @Excel(name = "编号")
    @ApiModelProperty("编号")
    private Long id;

    /** 退货单号 */
    @Excel(name = "退货单号")
    @ApiModelProperty("退货单号")
    private String returnNo;

    /** 发货id */
    @ApiModelProperty("发货id")
    private Long deliveryId;

    /** 发货单号 */
    @Excel(name = "发货单号")
    @ApiModelProperty("发货单号")
    private String deliveryNo;

    /** 销售合同id */
    @ApiModelProperty("销售合同id")
    private Long contractId;

    /** 合同编号 */
    @Excel(name = "合同编号")
    @ApiModelProperty("合同编号")
    private String contractNo;

    /** 客户id */
    @ApiModelProperty("客户id")
    private Long customId;

    /** 客户名称 */
    @Excel(name = "客户名称")
    @ApiModelProperty("客户名称")
    private String customName;

    /** 退货日期 */
    @Excel(name = "退货日期")
    @ApiModelProperty("退货日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date returnDate;

    /** 退货金额 */
    @Excel(name = "退货金额")
    @ApiModelProperty("退货金额")
    private BigDecimal returnAmount;

    /** 退货原因 */
    @Excel(name = "退货原因")
    @ApiModelProperty("退货原因")
    private String reason;

    /** 入库状态 */
    @Excel(name = "入库状态")
    @ApiModelProperty("入库状态")
    private String status;

    /** 销售退货明细信息 */
    @ApiModelProperty("销售退货明细信息")
    private List<ScmSaleReturnItem> scmSaleReturnItemList;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setReturnNo(String returnNo) 
    {
        this.returnNo = returnNo;
    }

    public String getReturnNo() 
    {
        return returnNo;
    }
    public void setDeliveryId(Long deliveryId)
    {
        this.deliveryId = deliveryId;
    }

    public Long getDeliveryId()
    {
        return deliveryId;
    }
    public void setDeliveryNo(String deliveryNo)
    {
        this.deliveryNo = deliveryNo;
    }

    public String getDeliveryNo()
    {
        return deliveryNo;
    }
    public void setContractNo(String contractNo) 
    {
        this.contractNo = contractNo;
    }

    public String getContractNo() 
    {
        return contractNo;
    }
    public void setCustomName(String customName) 
    {
        this.customName = customName;
    }

    public String getCustomName() 
    {
        return customName;
    }
    public void setReturnDate(Date returnDate) 
    {
        this.returnDate = returnDate;
    }

    public Date getReturnDate() 
    {
        return returnDate;
    }
    public void setReturnAmount(BigDecimal returnAmount) 
    {
        this.returnAmount = returnAmount;
    }

    public BigDecimal getReturnAmount() 
    {
        return returnAmount;
    }
    public void setReason(String reason) 
    {
        this.reason = reason;
    }

    public String getReason() 
    {
        return reason;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public Long getDeliverId() {
        return deliveryId;
    }

    public void setDeliverId(Long deliverId) {
        this.deliveryId = deliverId;
    }

    public List<ScmSaleReturnItem> getScmSaleReturnItemList()
    {
        return scmSaleReturnItemList;
    }

    public void setScmSaleReturnItemList(List<ScmSaleReturnItem> scmSaleReturnItemList)
    {
        this.scmSaleReturnItemList = scmSaleReturnItemList;
    }

    public Long getContractId() {
        return contractId;
    }

    public void setContractId(Long contractId) {
        this.contractId = contractId;
    }

    public Long getCustomId() {
        return customId;
    }

    public void setCustomId(Long customId) {
        this.customId = customId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("returnNo", getReturnNo())
            .append("deliveryId", getDeliveryId())
            .append("deliveryNo", getDeliveryNo())
            .append("contractNo", getContractNo())
            .append("customName", getCustomName())
            .append("returnDate", getReturnDate())
            .append("returnAmount", getReturnAmount())
            .append("reason", getReason())
            .append("status", getStatus())
            .append("remark", getRemark())
            .append("createTime", getCreateTime())
            .append("scmSaleReturnItemList", getScmSaleReturnItemList())
            .toString();
    }
}
